package Vista;

import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JToggleButton;

import Controlador.Controlador;

import java.awt.Dimension;
import java.awt.Color;
import net.miginfocom.swing.MigLayout;

public class Panel_ModoCliente extends JPanel {
	
	private JPanel panelSup;
	private JPanel panelCentral;
	private JPanel panelInf;
	private JPanel panelSupUno;
	private JPanel panelSupDos;
	private JPanel panelSupTres;
	private JPanel panelSupCuatro;
	
	// Paneles de otras clases
	private Panel_MCliente_Concesionario panelMClienteConce;
	private Panel_MCliente_Taller panelMClienteTaller;
	private Panel_MCliente_Tienda panelMClienteTienda;
	
	// Botones
	private JToggleButton botonConce;
	private JToggleButton botonTaller;
	private JToggleButton botonTienda;
	private JToggleButton botonMiCuenta;
	private JButton botonAyuda;
	private JButton botonSalir;
	
	private Controlador controlador;
	private String nombreCliente;
	
	/**
	 * Create the panel.
	 */
	public Panel_ModoCliente(Controlador control) {
		
		this.controlador=control;
				
		panelMClienteConce = new Panel_MCliente_Concesionario();
		panelMClienteTaller = new Panel_MCliente_Taller();
		panelMClienteTienda = new Panel_MCliente_Tienda();
		
		panelSup = new JPanel();
		panelSup.setBackground(new Color(230, 230, 250));
		panelCentral = new JPanel();
		panelInf = new JPanel();
		panelInf.setBackground(new Color(230, 230, 250));
		panelSupUno = new JPanel();
		panelSupUno.setBackground(new Color(230, 230, 250));
		panelSupDos = new JPanel();
		panelSupDos.setBackground(new Color(230, 230, 250));
		panelSupTres = new JPanel();
		panelSupTres.setBackground(new Color(230, 230, 250));
		panelSupCuatro = new JPanel();
		panelSupCuatro.setBackground(new Color(230, 230, 250));
		
		// Instanciar botones
		botonConce = new JToggleButton("Concesionario");
		botonConce.setPreferredSize(new Dimension(180, 30));
		botonConce.setFont(new Font("Tahoma", Font.PLAIN, 20));
		botonTaller = new JToggleButton("Taller");
		botonTaller.setPreferredSize(new Dimension(180, 30));
		botonTaller.setFont(new Font("Tahoma", Font.PLAIN, 20));
		botonTienda = new JToggleButton("Tienda");
		botonTienda.setPreferredSize(new Dimension(180, 30));
		botonTienda.setFont(new Font("Tahoma", Font.PLAIN, 20));
		botonMiCuenta = new JToggleButton("Mi cuenta");
		botonMiCuenta.setPreferredSize(new Dimension(180, 30));
		botonMiCuenta.setFont(new Font("Tahoma", Font.PLAIN, 20));
		botonAyuda = new JButton("Ayuda");
		botonAyuda.setFont(new Font("Tahoma", Font.PLAIN, 20));
		botonSalir = new JButton("Salir");
		botonSalir.setFont(new Font("Tahoma", Font.PLAIN, 20));
		
		// Colocar paneles
		this.setLayout(new BorderLayout(0, 0));
		this.add(panelSup, BorderLayout.NORTH);
		
		panelSup.setLayout(new GridLayout(1,4,2,2));
		panelSup.add(panelSupUno);
		panelSup.add(panelSupDos);
		panelSup.add(panelSupTres);
		panelSup.add(panelSupCuatro);
		
		panelSupUno.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelSupDos.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelSupTres.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelSupCuatro.setLayout(new FlowLayout(FlowLayout.CENTER));
		
		this.add(panelCentral, BorderLayout.CENTER);
		
		this.add(panelInf, BorderLayout.SOUTH);
		
		panelInf.setLayout(new BorderLayout(10,10));
		
		// Colocar botones
		panelSupUno.add(botonConce);
		panelSupDos.add(botonTaller);
		panelSupTres.add(botonTienda);
		panelSupCuatro.add(botonMiCuenta);
		
		panelInf.add(botonAyuda, BorderLayout.WEST);
		panelInf.add(botonSalir, BorderLayout.EAST);
		
		// OYENTES
		botonConce.addActionListener(new oyenteTogglesButtons());
		botonTaller.addActionListener(new oyenteTogglesButtons());
		botonTienda.addActionListener(new oyenteTogglesButtons());
		botonMiCuenta.addActionListener(new oyenteTogglesButtons());
		
	}
	
	/**
	 * @param nombreCliente the nombreCliente to set
	 */
	public void setNombreCliente(String nombre){
		this.nombreCliente=nombre;
	}
	
	public void cargarPanelMClienteConce(){
		panelCentral.removeAll();
		panelCentral.setLayout(new BorderLayout());
		panelCentral.add(panelMClienteConce, BorderLayout.CENTER);
		panelMClienteConce.setVisible(true);
		this.updateUI();
	}
	
	public void cargarPanelMClienteTaller(){
		panelCentral.removeAll();
		panelCentral.setLayout(new BorderLayout());
		panelCentral.add(panelMClienteTaller, BorderLayout.CENTER);
		panelMClienteTaller.setVisible(true);
		this.updateUI();
	}
	
	public void cargarPanelMClienteTienda(){
		panelCentral.removeAll();
		panelCentral.setLayout(new BorderLayout());
		panelCentral.add(panelMClienteTienda, BorderLayout.CENTER);
		panelMClienteTienda.setVisible(true);
		this.updateUI();
	}
	
	
	class oyenteTogglesButtons implements ActionListener {
		public void actionPerformed(ActionEvent evento) {
			if (evento.getActionCommand().equalsIgnoreCase("concesionario")){ 
				botonTaller.setSelected(false);
				botonTienda.setSelected(false);
				botonMiCuenta.setSelected(false);
				cargarPanelMClienteConce();
				
				if(!botonConce.isSelected()){
					panelCentral.removeAll();
				}
			}else if (evento.getActionCommand().equalsIgnoreCase("taller")) {
				botonConce.setSelected(false);
				botonTienda.setSelected(false);
				botonMiCuenta.setSelected(false);
				cargarPanelMClienteTaller();

				if(!botonTaller.isSelected()){
					panelCentral.removeAll();
				}
			}else if (evento.getActionCommand().equalsIgnoreCase("tienda")) {
				botonConce.setSelected(false);
				botonTaller.setSelected(false);
				botonMiCuenta.setSelected(false);
				cargarPanelMClienteTienda();
				
				if(!botonTienda.isSelected()){
					panelCentral.removeAll();
				}
			}else if (evento.getActionCommand().equalsIgnoreCase("mi cuenta")) {
				botonConce.setSelected(false);
				botonTaller.setSelected(false);
				botonTienda.setSelected(false);
				//repintarCreditos();
				if(!botonMiCuenta.isSelected()){
					panelCentral.removeAll();
				}
			}
		}
	}


	/**
	 * @return the nombreCliente
	 */
	public String getNombreCliente() {
		return nombreCliente;
	}

	
	
	// Accesores
	/**
	 * @return the botonConce
	 */
	public JToggleButton getBotonConce() {
		return botonConce;
	}


	/**
	 * @param botonConce the botonConce to set
	 */
	public void setBotonConce(JToggleButton botonConce) {
		this.botonConce = botonConce;
	}


	/**
	 * @return the botonTaller
	 */
	public JToggleButton getBotonTaller() {
		return botonTaller;
	}


	/**
	 * @param botonTaller the botonTaller to set
	 */
	public void setBotonTaller(JToggleButton botonTaller) {
		this.botonTaller = botonTaller;
	}


	/**
	 * @return the botonTienda
	 */
	public JToggleButton getBotonTienda() {
		return botonTienda;
	}


	/**
	 * @param botonTienda the botonTienda to set
	 */
	public void setBotonTienda(JToggleButton botonTienda) {
		this.botonTienda = botonTienda;
	}


	/**
	 * @return the botonMiCuenta
	 */
	public JToggleButton getBotonMiCuenta() {
		return botonMiCuenta;
	}


	/**
	 * @param botonMiCuenta the botonMiCuenta to set
	 */
	public void setBotonMiCuenta(JToggleButton botonMiCuenta) {
		this.botonMiCuenta = botonMiCuenta;
	}


	/**
	 * @return the botonAyuda
	 */
	public JButton getBotonAyuda() {
		return botonAyuda;
	}


	/**
	 * @param botonAyuda the botonAyuda to set
	 */
	public void setBotonAyuda(JButton botonAyuda) {
		this.botonAyuda = botonAyuda;
	}


	/**
	 * @return the botonSalir
	 */
	public JButton getBotonSalir() {
		return botonSalir;
	}


	/**
	 * @param botonSalir the botonSalir to set
	 */
	public void setBotonSalir(JButton botonSalir) {
		this.botonSalir = botonSalir;
	}
	
	
}
